The present invention relates to the field of data display, and more particularly to connecting to and displaying data from a data source using a standard user agent, such as a web browser.
With the advent of common Internet standards, such as the HTTP communication protocol, publishing certain types of information, such as HTML pages, has become very easy. Related client software utilizing these Internet standards, such as web browsers, have made it easy for users to connect to and receiving information from certain types of servers, such as HTTP servers.
However, these standards are not ideal for transferring certain types of information, such as live measurement data from an instrumentation data source. For this type of data transfer, other specialized communication protocols are often better suited than the default protocols supported by common browsers.
While it is possible to create custom client and server-side code to handle the transfer and graphical display of live data for each situation, this is certainly not the ideal approach to the problem. It would be better to leverage existing technologies, such as client-side web browsers. User agents such as web browsers often provide a mechanism to extend their supported communication protocols using protocol handler plug-ins. As a solution to the problem of viewing data from a live data source, it would be desirable to provide such code that a user may easily install and use to view a wide variety of types of data from a wide variety of data source types.
One embodiment of the present invention comprises a system and method for viewing live data, such as measurement data from an instrumentation system, using a standard user agent or client, such as a web browser. A uniform resource locator (URL) identifying a data source is provided to the user agent. For example, a URL identifying a source of live meteorological data may be provided to a web browser, e.g., by typing the URL into an address field or selecting the URL from a list of bookmarks. The URL includes a protocol scheme identifying the protocol to use for connecting to the data source.
Standard user agents typically provide support for default protocol schemes, such as xe2x80x9chttp://xe2x80x9d, xe2x80x9cftp://xe2x80x9d, etc. Many user agents also provide the ability for users to extend the supported protocol schemes via protocol plug-ins. According to one embodiment, a protocol plug-in may be installed to enable the user agent to display a default view of a live data source. For example, the Data Socket Transfer Protocol (DSTP), described below, is a TCP/IP-based protocol optimized for transferring streaming data. A URL may specify the Data Socket Transfer Protocol as the protocol scheme to be used in referencing a data source, e.g., xe2x80x9cdstp://cosine.natinst.com/dsdemo/3dsurface1xe2x80x9d, and a plug-in for handling the Data Socket Transfer Protocol may be installed.
The protocol plug-in may handle the URL by returning standard markup language code, e.g., HTML code, to the user agent, wherein the markup language code refers to a data viewer component, e.g., by including an HTML  less than OBJECT greater than  tag. For example, the data viewer component may be referenced using a CLASSID attribute identifying its globally unique identifier (GUID). The markup language code may also comprise a parameter tag, e.g., an HTML  less than PARAM greater than  tag, specifying the URL as a parameter to the data viewer component. The data viewer component may then connect to the data source identified by the URL and receive and display data. In the preferred embodiment, the data viewer component utilizes a control or object enabled to connect to the data source and receive the data. One such control, referred to as a DataSocket control, is described herein.
In one embodiment, the plug-in or the data viewer may configure the data source to begin generating the live data. The data source may be idle until the plug-in or the data viewer connects to the data source and optionally configures the data source to start providing data. For example, the plug-in or the data viewer may load one or more software drivers to initiate the data source. In one embodiment, where the data source is a measurement device, the plug-in or the data viewer configures the measurement device to begin taking measurements from a unit under test, and this acquired measurement data is provided as the live data.
Upon receiving the data, the data viewer component may display the data in the user agent in various ways, depending on the type of data received. For example, the viewer may provide default display mechanisms for a simple waveform, a two-dimensional array, a three-dimensional array, an array of strings, etc. The data received from the data source may also include attributes specifying the preferred display settings that the data viewer should use.
U.S. patent application Ser. No. 09/374,740 discloses a system and method for automatically generating URLs referencing various data sources connected to a computer. For example, URLs referencing connected data sources may be automatically generated and placed into the xe2x80x9cFavoritesxe2x80x9d or xe2x80x9cBookmarksxe2x80x9d list of a web browser application. Thus, a user may provide a URL referencing a particular data source to a user agent, without needing to know the appropriate syntax for referencing the data source.
The present invention thus enables a user to connect to a wide variety of data sources using standard software, such as web browsers, and see a graphical representation of the data without having to write any program code. The user can connect to a data source and view live data, e.g., data that is generated xe2x80x9clivexe2x80x9d and which was not previously stored in a memory. Advantageously, users may connect to a data source and view live data from the data source in a manner similar to connecting to a traditional web HTTP server and viewing a web page, but without interacting with an HTTP server at any point. Also, the data source can make its data available using any of various communication protocols, such as a protocol optimized for the transfer of simple or structured data over a connection for an indefinite period of time.